import { ApiProperty } from '@nestjs/swagger';
import { IsNotIn, MaxLength, MinLength } from 'class-validator';
import { Exclude } from 'class-transformer';

export class UpdatePasswordDto {
  @ApiProperty({ type: String, description: 'id' })
  id: string;
  @ApiProperty({ type: String, description: '用户登录密码', required: false })
  @MinLength(6, {
    message: '密码长度不能小于6位数',
  })
  @MaxLength(200, {
    message: '密码长度不能超过200位数',
  })
  @IsNotIn(['', undefined, null], { message: '密码不能为空' })
  // @Matches(/((?=.*\d)|(?=.*W+))(?![.\n])(?=.*[a-z])(?=.*[A-Z]).*$/, {message: '密码中需包含数字、大写字母、小写字母以及特殊符号！'}) // 匹配字符串中包含数字、大写、小写字母、特殊符号
  @Exclude({ toPlainOnly: true }) // 输出屏蔽密码
  password: string;
  @ApiProperty({ type: String, description: '用户登录密码', required: false })
  @MinLength(6, {
    message: '密码长度不能小于6位数',
  })
  @MaxLength(200, {
    message: '密码长度不能超过200位数',
  })
  @IsNotIn(['', undefined, null], { message: '密码不能为空' })
  // @Matches(/((?=.*\d)|(?=.*W+))(?![.\n])(?=.*[a-z])(?=.*[A-Z]).*$/, {message: '密码中需包含数字、大写字母、小写字母以及特殊符号！'}) // 匹配字符串中包含数字、大写、小写字母、特殊符号
  @Exclude({ toPlainOnly: true }) // 输出屏蔽密码
  passwordTow: string;
}
